//
//  TZWBaseTableViewController.swift
//  Sinaweibotzw
//
//  Created by 檀志文 on 16/4/9.
//  Copyright © 2016年 ios檀志文. All rights reserved.
//

import UIKit

class TZWBaseTableViewController: UITableViewController {
    // 这里出错了
        //用户是否登录
    var useLogin = TZWUserAccoutViewModel.sharedInstance.useLogin
    
    override func loadView() {
        useLogin ? super.loadView() : setupVisitorView()
    }
    /**
     *  设置访客视图
     */
    
private func setupVisitorView() {
    view = visitorView
    
    // 5.设置访客视图的代理,当设置代理后,没有实现这个协议会报错
    visitorView.delegate = self
    
    // 设置访客视图内容, 4个子控制器都会走这里,self具体是什么类型看创建的子类: 多态
    //        print("self: \(self)")
    if self is TZWHomeTableViewController {
        visitorView.startRotation()
    } else if self is TZWMessageTableViewController {
        visitorView.setupVisitorViewInfo("visitordiscover_image_message", message: "登录后，别人评论你的微博，发给你的消息，都会在这里收到通知")
    } else if self is TZWDiscoverTableViewController {
        visitorView.setupVisitorViewInfo("visitordiscover_image_message", message: "登录后，最新、最热微博尽在掌握，不再会与实事潮流擦肩而过")
    } else if self is TZWProfileTableViewController {
        visitorView.setupVisitorViewInfo("visitordiscover_image_profile", message: "登录后，你的微博、相册、个人资料会显示在这里，展示给别人")
    }
    
    // 设置导航栏按钮
    navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: UIBarButtonItemStyle.Plain, target: self, action: Selector("visitorViewDidClickRegisterButton"))
    navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登录", style: UIBarButtonItemStyle.Plain, target: self, action: Selector("visitorViewDidClickLoginButton"))
}

// MARK: - 懒加载
/// 给别人调用的时候尽量简单
/// 高内聚低耦合
 lazy var visitorView: TZWVisitorView = TZWVisitorView()   // [[HMVisitorView alloc] init]
}

// 扩展和oc中的分类很像，只能扩展方法，可以让对象实现协议，好处方便管理代码

extension TZWBaseTableViewController : TZWVisitorViewDelegate{
    func visitorViewDidClickRegisterButton() {
        
    }
    func visitorViewDidClickLoginButton() {
        let oauthVc = TZWOauthViewController()
        
        let nav = UINavigationController(rootViewController: oauthVc)
        
        presentViewController(nav, animated: true, completion: nil)
        
    }
    
}











